#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <linux/limits.h>
#include "rocerror.h"  // 新增头文件

int main(int argc, char *argv[]) {
    char filename[PATH_MAX] = { 0 };

    // 使用 app_error 处理参数错误
    if (argc != 2) {
        app_error("You must supply a filename as an argument");
    }

    // 更安全的字符串拷贝方式
    strncpy(filename, argv[1], sizeof(filename) - 1);
    filename[sizeof(filename) - 1] = '\0';

    // 使用 unix_error 统一处理系统调用错误
    if (creat(filename, 0644) == -1) {
        char error_msg[PATH_MAX + 30];
        snprintf(error_msg, sizeof(error_msg), "Can't create file '%s'", filename);
        unix_error(error_msg);
    }

    return 0;
}
